home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / Powervisor v1.10b disk1.adf / PVDevelop / include / PV / ScreenBase.h < prev    next >
C/C++ Source or Header  |  1991-09-29  |  6KB  |  288 lines

  1. #ifndef PV_SCREENBASE_H
  2. #define PV_SCREENBASE_H TRUE
  3. /*
  4. **  $Filename: ScreenBase.h $
  5. **  $Release: 1.10 $
  6. **  $Revision: 37.615 $
  7. **  $Date: 29 Sep 91 $
  8. **
  9. **  Structure definitions for Screen Base (see 'TheWizardCorner')
  10. **
  11. **  © 1991 Jorrit Tyberghein, included with PowerVisor
  12. **        All Rights Reserved
  13. */
  14.  
  15. #ifndef PV_PVMEMORY_H
  16. #include "PVMemory.h"
  17. #endif
  18.  
  19. #ifndef DOS_DOS_H
  20. #include <dos/dos.h>
  21. #endif
  22.  
  23. #ifndef INTUITION_INTUITION_H
  24. #include <intuition/intuition.h>
  25. #endif
  26.  
  27.  
  28. #define INTMODE_HEX        0
  29. #define INTMODE_DEC        1
  30. #define INTMODE_HEXDEC        2
  31.  
  32. #define SCROLLMODE_NOMORE    0
  33. #define SCROLLMODE_MORE        1
  34.  
  35. #define SNAPMODE_NOSPACE    0
  36. #define SNAPMODE_SPACE        1
  37.  
  38. #define LONESPC_NO        0
  39. #define LONESPC_YES        1
  40.  
  41. #define SBOTTOMMODE_NO        0
  42. #define SBOTTOMMODE_YES        1
  43.  
  44. #define INTERLACE_NO        0
  45. #define INTERLACE_YES        1
  46.  
  47. #define FANCY_NO        0
  48. #define FANCY_YES        1
  49.  
  50. #define LOGWINFLAGS_PRINTFILE    1
  51. #define LOGWINFLAGS_PRINTSCREEN    2
  52. #define LOGWINFLAGS_MORE    4
  53. #define LOGWINFLAGS_TOTALHOME    32
  54. #define LOGWINFLAGS_STATUSLINE    64
  55. #define LOGWINFLAGS_BREAKCHECK    128
  56. #define LOGWINFLAGS_AUTOOUTPUT    256
  57.  
  58. #define BOXTYPE_UPDOWN        0
  59. #define BOXTYPE_LEFTRIGHT    1
  60. #define BOXTYPE_ATOMIC        2
  61.  
  62. #define COLOR_GRAY        0
  63. #define COLOR_BLACK        1
  64. #define COLOR_WHITE        2
  65. #define COLOR_BLUE        3
  66.  
  67. #define Pen_BoxBackground    0
  68. #define Pen_LWBackground    1
  69. #define Pen_NormalText        2
  70. #define Pen_PromptText        3
  71. #define Pen_StatusTextInActive    4
  72. #define Pen_StatusTextActive    5
  73. #define Pen_InActive        6
  74. #define Pen_Active        7
  75. #define Pen_TopLeft3D        8
  76. #define Pen_BottomRight3D    9
  77. #define Pen_BoxLine        10
  78. #define Pen_EmptyBox        11
  79. #define Pen_LeftBox        12
  80. #define Pen_RightBox        13
  81. #define Pen_ShowPos3D        14
  82. #define Pen_SGInActiveText    15
  83. #define Pen_SGInActiveBack    16
  84. #define Pen_SGActiveText    17
  85. #define Pen_SGActiveBack    18
  86.  
  87.  
  88. /* Global structure holding some global window information
  89. */
  90. struct Global
  91.     {
  92.         struct Global *NextGlobal,*PrevGlobal;
  93.         struct List PhysWinList;
  94.         struct LogicalWindow *ActiveLogWin;
  95.         ULONG GlobalSignalSet;
  96.         ULONG pad0;
  97.     };
  98.  
  99. /* The physical window corresponding with an Intuition window. This
  100. ** physical window also manages the logical windows and the boxes.
  101. ** Do not depend on the size of this structure !!!
  102. */
  103. struct PhysicalWindow
  104.     {
  105.         struct Node node;
  106.         struct NewWindow NewWindow;
  107.         struct Window *Window;
  108.         ULONG SignalSet;
  109.         WORD LastCode;
  110.         WORD LastQualifier;
  111.         BYTE LeftBorder;
  112.         BYTE TopBorder;
  113.         BYTE RightBorder;
  114.         BYTE BottomBorder;
  115.         struct Box *MasterBox;
  116.         struct Global *Global;
  117.         struct List LogWinList;
  118.     };
  119.  
  120. /* The logical window.
  121. ** Do not depend on the size of this structure !!!
  122. */
  123. struct LogicalWindow
  124.     {
  125.         struct Node node;
  126.         struct Box *Box;
  127.         WORD x;
  128.         WORD y;
  129.         WORD w;
  130.         WORD h;
  131.         WORD FirstVisibleCol;
  132.         WORD FirstVisibleRow;
  133.         WORD CurrentCol;
  134.         WORD CurrentRow;
  135.         WORD VisibleWidth;
  136.         WORD VisibleHeight;
  137.         ULONG Flags;
  138.         struct TextAttr TextAttr;
  139.         struct TextFont *Font;
  140.         WORD FontWidth;
  141.         WORD FontHeight;
  142.         WORD FontBaseline;
  143.         struct PhysicalWindow *PhysWin;
  144.         WORD OptCol;
  145.         WORD OptRow;
  146.         WORD NrLinesInBuf;
  147.         WORD NrColsInLine;
  148.         APTR Buffer;
  149.         BPTR LogFile;
  150.         WORD MoreLines;
  151.         ULONG pad0;
  152.         ULONG pad1;
  153.         UBYTE Active;
  154.         BYTE TopBorderStatus;
  155.         WORD RealTopCoordinate;
  156.         APTR userdata;
  157.     };
  158.  
  159. /* The box used to manage the available space of a physical window.
  160. ** Do not depend on the size of this structure !!!
  161. */
  162. struct Box
  163.     {
  164.         struct Box *Parent,*ChildA,*ChildB;
  165.         struct LogicalWindow *LogWin;
  166.         struct PhysicalWindow *PhysWin;
  167.         WORD ShareA;
  168.         BYTE Type;
  169.         BYTE Dirty;
  170.         BYTE LeftBorder;
  171.         BYTE TopBorder;
  172.         BYTE RightBorder;
  173.         BYTE BottomBorder;
  174.         WORD realx;
  175.         WORD realy;
  176.         WORD realw;
  177.         WORD realh;
  178.         WORD x1scrollbar;
  179.         WORD y1scrollbar;
  180.         WORD x2scrollbar;
  181.         WORD y2scrollbar;
  182.     };
  183.  
  184. struct DefaultLWSize
  185.     {
  186.         WORD Columns;
  187.         WORD Rows;
  188.         UWORD Mask;
  189.         UWORD Flags;
  190.     };
  191.  
  192. struct LWOpenString
  193.     {
  194.         UBYTE OpenStr[8];
  195.         UWORD Share;
  196.     };
  197.  
  198.  
  199. struct ScreenBase
  200.     {
  201.         UBYTE IntDisplayMode;
  202.         UBYTE ScrollMode;
  203.         UBYTE AddSpaceAfterSnap;
  204.         UBYTE LoneSpcMode;
  205.         UBYTE SBottomMode;
  206.         UBYTE DontClearLine;
  207.         UBYTE pad0;
  208.         UBYTE InterlaceMode;
  209.         UBYTE FancyMode;
  210.         UBYTE pad1;
  211.         ULONG CmdLineLen;
  212.         UBYTE *CmdLine;
  213.         UWORD CursorPos;
  214.         struct DefaultLWSize MainDefSize;
  215.         struct DefaultLWSize ExtraDefSize;
  216.         struct DefaultLWSize RefreshDefSize;
  217.         struct DefaultLWSize DebugDefSize;
  218.         struct DefaultLWSize PPrintDefSize;
  219.         struct DefaultLWSize RexxDefSize;
  220.         PVBLOCK SnapCommand;
  221.         LONG pad2;
  222.         LONG pad3;
  223.         struct PhysicalWindow *MainPW;
  224.         struct LogicalWindow *MainLW;
  225.         struct LogicalWindow *RefreshLW;
  226.         struct LogicalWindow *DebugLW;
  227.         struct LogicalWindow *ExtraLW;
  228.         struct LogicalWindow *PPrintLW;
  229.         struct LogicalWindow *RexxLW;
  230.         struct LogicalWindow *CurrentLW;
  231.         WORD PromptPosX;
  232.         WORD LeftStringPosX;
  233.         WORD RightStringPosX;
  234.         struct Screen *OtherScreen;
  235.         struct Screen *PVScreen;
  236.         ULONG IMsgClass;
  237.         UWORD IMsgCode;
  238.         APTR IMsgIAddress;
  239.         WORD IMsgMouseX;
  240.         WORD IMsgMouseY;
  241.         UWORD IMsgQualifier;
  242.         struct Global *TheGlobal;
  243.         LONG pad4;
  244.         LONG pad5;
  245.         struct LWOpenString MainString;
  246.         struct LWOpenString ExtraString;
  247.         struct LWOpenString DebugString;
  248.         struct LWOpenString RefreshString;
  249.         struct LWOpenString PPrintString;
  250.         struct LWOpenString RexxString;
  251.         ULONG StartupFlags;
  252.         WORD WinX;
  253.         WORD WinY;
  254.         WORD WinW;
  255.         WORD WinH;
  256.         WORD ScreenW;
  257.         WORD ScreenH;
  258.         UBYTE FancyPens[24];
  259.         UBYTE NoFancyPens[24];
  260.         APTR CurrentPenTable;
  261.         UBYTE BusyPrompt[6];
  262.         UBYTE MorePrompt[6];
  263.         UBYTE WaitPrompt[6];
  264.         UBYTE LockPrompt[6];
  265.         UBYTE ScanPrompt[4];
  266.         UBYTE FeedBackPrompt[2];
  267.         struct LogicalWindow *LockLW;
  268.         UBYTE *LockPrompt;
  269.         UBYTE LockState;
  270.         UBYTE BusyMode;
  271.         UBYTE GadgetExists;
  272.         UBYTE pad6;
  273.         UBYTE DefaultFontName[34];
  274.         struct TextAttr DefaultFont;
  275.         UWORD LogWinBorderHeight;
  276.         UWORD pad7;
  277.         WORD DragToleranceX1;
  278.         WORD DragToleranceY1;
  279.         WORD DragToleranceX2;
  280.         WORD DragToleranceY2;
  281.         WORD SizeToleranceX;
  282.         WORD SizeToleranceY;
  283.         APTR rtRequestStruct;
  284.                 struct Library *ReqToolsBase;
  285.     };
  286.  
  287. #endif
  288.